package com.zhentao.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.sound.sampled.Port;

/**
 * 订单主表
 * @TableName order_main
 */
@TableName(value ="order_main")
@Data
public class OrderMain {
    /**
     * 订单ID（唯一标识）
     */
    @TableId(type = IdType.AUTO)
    private Long orderId;

    /**
     * 订单编号（业务唯一标识，如“ORDER20240501001”）
     */
    private String orderNo;

    /**
     * 下单用户ID（关联用户）
     */
    private Long userId;

    /**
     * 订单类型(1-个人订单;2-船舶订单)
     */
    private Integer orderType;

    /**
     * 船舶ID（仅order_type=2时必填，关联船舶）
     */
    private Long shipId;

    /**
     * 目的港ID（收货港口，关联港口）
     */
    private Long portId;

    /**
     * 船长姓名（仅order_type=2时必填，收货对接人）
     */
    private String captainName;

    /**
     * 船长电话（仅order_type=2时必填，收货联系方式）
     */
    private String captainPhone;


    /**
     * 支付方式(1-在线支付;2-现金支付;3-账单支付（公司）)
     */
    private Integer paymentType;

    /**
     * 订单状态(1-待付款;2-配货中;3-送货中;4-已完成;5-已取消)
     */
    private Integer orderStatus;

    /**
     * 是否异常订单(0-正常;1-异常（如目的港变更）)
     */
    private Integer isAbnormal;

    /**
     * 下单时间
     */
    private Date createTime;

    /**
     * 支付时间
     */
    private Date payTime;

    /**
     * 完成时间
     */
    private Date completeTime;
    //船舶表
    @TableField(exist = false)
    private Ship ship;
    //港口表
    @TableField(exist = false)
    private Port port;
    //商品表
    @TableField(exist = false)
    private Product product;
    //商品封面表
    @TableField(exist = false)
    private ProductImage productImage;
    //订单类型
    @TableField(exist = false)
    private OrderItem orderItem;
    //订单明细表
    @TableField(exist = false)
    private OrderFee orderFee;
}